<!--  -->
<template>
  <div class="teamwork">
    <el-row>
      <el-col :span="16"><div ref="scatter" class="teamwork_excle" /></el-col>
      <el-col :span="8"><div class="teamwork_right">
        <p>{{ valueList }}</p>
        <span>点位数</span><br>
        <p>{{ dataList.length }}</p>
        <span>合作商数</span>
      </div>
      </el-col>
    </el-row>
    <i class="el-icon-more" @click="routerFn" />
  </div>
</template>

<script>
// 导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
import { nodeCollectAPI } from '@/api/home'
import * as echarts from 'echarts'

export default {
  name: 'Teamwork',
  components: {},
  props: {
  },
  data() {
    return {
      dataList: [],
      valueList: 0
    }
  },
  // 监听属性 类似于data概念
  computed: {
    test() {
      return this.dataList
    }
  },
  // 监控data中的数据变化
  watch: {
    test: {
      deep: true,
      handler: function() {
        this.scatterFn()
      }
    }
  },
  // 生命周期 - 创建完成（可以访问当前this实例）
  created() {
    this.nodeCollect()
  },
  // 生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {

  },
  beforeCreate() {}, // 生命周期 - 创建之前
  beforeMount() {}, // 生命周期 - 挂载之前
  beforeUpdate() {}, // 生命周期 - 更新之前
  updated() {}, // 生命周期 - 更新之后
  beforeDestroy() {}, // 生命周期 - 销毁之前
  destroyed() {}, // 生命周期 - 销毁完成
  activated() {},
  // 方法集合
  methods: {
    routerFn() {
      this.$router.push('/node/partner')
    },
    async nodeCollect() {
      const { data } = await nodeCollectAPI()
      this.dataList = data
      data.forEach(item => {
        this.valueList += item.value
      })
      console.log(this.valueList)
    },
    scatterFn() {
      const scatterOption = {
        title: {
          text: '合作商点位数Top5'
        },
        tooltip: {
          trigger: 'item',
          borderWidth: '0',
          formatter: function(param) {
            console.log(param, 'param')
            return `<div style="color:#bbb">
      ${param.data.name}
      <div>
      总占比：${param.percent}%
      </div>
      </div>`
          }
        },
        series: [
          {

            type: 'pie',
            radius: [20, 140],
            roseType: 'radius',
            emphasis: {
              label: {
                show: true
              }
            },
            data: this.dataList,
            label: {
              show: true,
              // bleedMargin: 0, // 放置文字被折叠
              // alignTo: 'labelLine',

              formatter: ['{bs|{b}}', '{ds|{d}%}'].join('\n'),
              rich: { // 更改颜色配置项
                bs: {
                  color: '#000',
                  fontSize: 14
                },
                ds: {
                  color: '#000',
                  fontSize: 14
                },
                cs: {
                  color: '#000',
                  fontSize: 12,
                  align: 'center'
                }
              }
            }
          }
        ]
      }
      // 传递一个dom元素
      const psgTimeCharts = echarts.init(this.$refs.scatter)
      // 传入一个配置项
      psgTimeCharts.setOption(scatterOption)
    }
  } // 如果页面有keep-alive缓存功能，这个函数会触发
}
</script>
<style scoped lang='scss'>
.teamwork{
    width: 851px;
    height: 353px;
    display: flex;
    background: #fff;
    border-radius: 20px;
    padding: 20px;
}
.teamwork_excle{
      width: 600px;
      height: 353px;
}
.teamwork_right{
    width: 154px;
    height: 230px;
    margin-top: 40px;
    padding-top: 47px;
    padding-left: 38px;
    background: linear-gradient(135deg,transparent,#f8f8f9 0) 0 0,linear-gradient(-135deg,transparent 12px,#f8f8f9 0) 100% 0,linear-gradient(-45deg,transparent,#f8f8f9 0) 100% 100%,linear-gradient(45deg,transparent 12px,#f8f8f9 0) 0 100%;
    background-size: 50% 50%;
    background-repeat: no-repeat;
    float: right;
}
p{
font-size: 30px;
color: blue;
margin: 0;
}
.el-icon-more{
  float: right;
    width: 18px;
    height: 18px;
    color: #5f84ff;
    cursor: pointer;
    border: 1px solid #5f84ff;
    border-radius: 50%;
    font-size: 16px;
}
</style>
